home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PBLIB1 / PROGS / ENV.SAV < prev    next >
Text File  |  1993-11-30  |  6KB  |  260 lines

  1. (*PAGE*)
  2. PROGRAM ENV;
  3.  
  4. {$M 10000,0,10000}
  5.  
  6. {
  7. Description :  Prints envelopes on LJ4
  8.  
  9. Author      : Howard Richoux
  10. Date        : 11/20/93
  11. Last revised: 11/30/93  more config parameters
  12. Application : IBM PC and compatibles, done in Turbo Pascal 5.0
  13. Status      : PUBLIC DOMAIN
  14. Published in: none
  15. }
  16.  
  17.  
  18. Uses
  19.      DOS, crtstuf,
  20.      iostuf, miscstuf, fileobj, parmstuf, strastuf,
  21.      slctstuf, helpstuf, ljiistuf;
  22.  
  23. var S            : string;
  24. var outfile      : string[40];
  25.     fname        : string[40];
  26.     SetupString  : string[40];
  27.     Ret1, Ret2, Ret3, Ret4   : string[40];
  28.     ReturnFlag   : boolean;
  29.     AddressPAD   : integer;
  30.     setup1, setup2, setup3 : string;
  31.  
  32. var addressdir,template   : string[40];
  33.  
  34.  
  35. {*****************************************************************}
  36.  
  37.  
  38.  
  39. Procedure ListFile(fname : string);
  40. var line, CurrFName : string;
  41.     done : boolean;
  42.     tx   : TFILE_object;
  43.     begin
  44.     done := false;
  45.     CurrFName := UpCaseStr(fname);
  46.     tx.init(CurrFName,false);
  47.     while tx.fetchnext(line) and not done do
  48.         begin
  49.         writeln(f,Conststr(' ',AddressPad),line);
  50.         if keypressed then done := true;
  51.         end;
  52.     tx.done;
  53.     end;
  54.  
  55.  
  56. Function LocateFile(var fn : string) : boolean;
  57. var i :integer;
  58.     found : boolean;
  59.     begin
  60.     found := true;
  61.     if      FileExists(addressdir+fn + '.adr') then
  62.          fn := addressdir+fn + '.adr'
  63.     else if FileExists(addressdir+fn)          then
  64.          begin end
  65.     else found := false;
  66.     LocateFile := found;
  67.     end;
  68.  
  69.  
  70. Procedure Shutdown;
  71.     begin
  72.     SetupString := chr(27) + 'E';
  73.     write(f,SetupString);
  74.     end;
  75.  
  76.  
  77. Procedure EnvelopeSetUp;
  78.     begin
  79.     writeln('setup1 [',setup1,']');
  80.     writeln('setup2 [',setup2,']');
  81.     writeln('setup3 [',setup3,']');
  82.     write(f,LJIICMD(3));  {Landscape Mode}
  83.     write(f,LJIICMD(8));  {Manual Feed}
  84.     write(f,LJIICMD(9));  {Legal Envelope size}
  85.     writeln(f,'');
  86.     if setup1 <> '' then write(f,#27+setup1);
  87.     if setup2 <> '' then write(f,#27+setup2);
  88.  
  89.     if returnflag then
  90.          begin
  91.          writeln(f,'       ',Ret1);
  92.          writeln(f,'       ',Ret2);
  93.          writeln(f,'       ',Ret3);
  94.          writeln(f,'       ',Ret4);
  95.          writeln(f,'');
  96.          writeln(f,'');
  97.          writeln(f,'');
  98.          writeln(f,'');
  99.          writeln(f,'');
  100.          end
  101.     else begin
  102.          writeln(f,'');
  103.          writeln(f,'');
  104.          writeln(f,'');
  105.          writeln(f,'');
  106.          writeln(f,'');
  107.          writeln(f,'');
  108.          writeln(f,'');
  109.          writeln(f,'');
  110.          writeln(f,'');
  111.          end;
  112.     if setup3 <> '' then write(f,#27+setup3);
  113.     end;
  114.  
  115.  
  116.  
  117. Procedure PrintAddress(fn : string);
  118. var SR :searchrec;
  119.     i  : integer;
  120.     fname : string[80];
  121.     begin
  122.     fname := fn;
  123.     i := Pos('.',fname);
  124.     if LocateFile(fname) then
  125.          begin
  126.          EnvelopeSetUp;
  127.          ListFile(fname);
  128.          end
  129.     else writeln('PrintAddress - File Not Found - [',fname,']');
  130.     Shutdown;
  131.     end;
  132.  
  133.  
  134. (*PAGE*)
  135.  
  136. Procedure Getfiles( Template : string; var fl : STRA_object);
  137. var SR : searchrec;
  138.     ok : boolean;
  139.      begin
  140.      FindFirst(Template,0,SR);
  141.      while DOSError = 0 do
  142.           begin
  143.           if length(sr.name) > 4 then
  144.               begin
  145.               ok := fl.append(sr.name);
  146.               end;
  147.           FindNext(SR);
  148.           end;
  149.      fl.sort;
  150.      end;
  151.  
  152.  
  153. Procedure DoView(dir,template : string);
  154. var filename   : string[40];
  155.     cmd        : string[40];
  156.     itemselect : integer;
  157. var files      : STRA_object;
  158.      begin
  159.      itemselect := 1;
  160.      HelpMaxLines := 1000;
  161.      filename   := '';
  162.      cmd        := '?RESELECT';
  163.      files.init(100);
  164.      Getfiles(addressdir+Template, files);
  165.      while itemselect > 0 do
  166.           begin
  167.           SetSelectwindow(3,3,15,3,15);
  168.           SetSelectWindowLabels(' ENV - Envelope Printer ',' Select a File ');
  169.           SelectWCmd(files,filename,itemselect,cmd);
  170.           if (filename <> '') then
  171.               begin
  172.               EnvelopeSetUp;
  173.               ListFile(addressdir+filename);
  174.               Shutdown;
  175.              {itemselect := 0;}
  176.               end;
  177.           end;
  178.      files.dispose;
  179.      end;
  180.  
  181.  
  182.  
  183. (*PAGE*)
  184.  
  185.  
  186. Procedure DoStatus;
  187.     begin
  188.     ListParms(0);
  189.     end;
  190.  
  191.  
  192. Procedure Init;
  193.     begin
  194.     AddParm(1,'PATH','c:\address\');
  195.     template := '*.adr';
  196.     addparm(1,'OUT','');
  197.     addparm(1,'ADDRESSPAD','100');
  198.  
  199.     StandardpVarsInit;
  200.  
  201.     addressdir := GetParmStr('PATH');
  202.     addresspad := GetParmNum('ADDRESSPAD');
  203.  
  204.     setup1 := '';
  205.     setup2 := '';
  206.     setup3 := '';
  207.     setup1 := GetParmStr('SETUP1');
  208.     setup2 := GetParmStr('SETUP2');
  209.     setup3 := GetParmStr('SETUP3');
  210.  
  211.  
  212.     Ret1 := 'Ret1';
  213.     Ret2 := 'Ret2';
  214.     Ret3 := 'Ret3';
  215.     Ret4 := 'Ret4';
  216.     Outfile    := GetParmStr('OUT');
  217.     Ret1       := GetParmStr('RET1');
  218.     Ret2       := GetParmStr('RET2');
  219.     Ret3       := GetParmStr('RET3');
  220.     Ret4       := GetParmStr('RET4');
  221.     fIsPrinter := CheckOK('PRINTER');
  222.     ReturnFlag := CheckOK('RETURN');
  223.  
  224.     if outfile <> '' then
  225.         begin
  226.         fReWrite(outfile,true);
  227.         end;
  228.     end;
  229.  
  230.  
  231. (*  Main program *)
  232.     BEGIN
  233.     writeln('ENV 1.00 - Addresses Envelopes on LJ4   11/93');
  234.     writeln(' Placed in public domain by Howard Richoux (402) 488-5867');
  235.     writeln('');
  236.     Init;
  237.  
  238.     fname := 'x';
  239.     if ParamCount > 0 then
  240.          begin
  241.          fname := UpCaseStr(paramstr(1));
  242.          if      fname = 'HELP'   then ShowDocFile
  243.          else if fname = 'STATUS' then DoStatus
  244.          else
  245.               begin
  246.               PrintAddress(fname);
  247.               end;
  248.          end
  249.     else
  250.          begin
  251.          if template <> '' then DoView(addressdir,template)
  252.          else writeln('template = ',template,'   dir = ',addressdir);
  253.          end;
  254.     writeln('');
  255.     fIsPrinter := false;  {already have trailing FF}
  256.     fcloseOutput;
  257.     end.
  258.  
  259.  
  260.